package org.huawei260.TiKu.ODsuanfa;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import java.util.regex.Pattern;

/**
 * @Author: qingle
 * @Date: 2024/10/28-16:11
 * @Description: 2536 【模拟】2024D解密犯罪时间
 *
 * 警察在侦破一个案件时，得到了线人给出的可能犯罪时间，形如“HH:MM” 表示的时刻。根据警察和线人的约定，为了隐蔽，该时间是修改过的，解密规则为：利用当前出现过的数字，构造下一个距离当前时间最近的时刻，则该时间为可能的犯罪时间。每个出现数字都可以被无限次使用。
 * 输入格式
 * 形如HH:SS的字符串，表示原始输入
 * 输出格式
 * 形如HH:SS的字符串，表示推理出来的犯罪时间
 * 输入样例    复制
 * 18:52
 * 输出样例    复制
 * 18:55
 * 提示
 * 1. 可以保证线人给定的字符串一定是合法的。例如，“01:35”和“11:08”是合法的，“1:35”和“11:8”是不合法的
 *
 * . 最近的时刻有可能在第二天
 *
 * @version: 1.0
 */

public class D_2024D_2536__模拟解密犯罪时间_AI {


//import java.util.ArrayList;
//import java.util.HashSet;
//import java.util.LinkedList;
//import java.util.Scanner;
//import java.util.regex.Pattern;

//	public class Main {
		public static void main(String[] args) {
			Scanner sc = new Scanner(System.in);

			String[] tmp = sc.nextLine().split(":");
			String hour = tmp[0];
			String minute = tmp[1];

			System.out.println(getResult(hour, minute));
		}

		public static String getResult(String hour, String minute) {
			HashSet<Character> set = new HashSet<>();
			for (int i = 0; i < hour.length(); i++) set.add(hour.charAt(i));
			for (int i = 0; i < minute.length(); i++) set.add(minute.charAt(i));
			Character[] arr = set.toArray(new Character[0]);

			ArrayList<String> res = new ArrayList<>();
			dfs(arr, new LinkedList<>(), res);

			res.sort(String::compareTo);
			int index = res.indexOf(hour + minute);

			String recentTime;
			if (index == res.size() - 1) {
				recentTime = res.get(0);
			} else {
				recentTime = res.get(index + 1);
			}

			String[] split = recentTime.split("");
			split[1] += ":";
			return String.join("", split);
		}

		static Pattern p = Pattern.compile("(([01][0-9])|([2][0-3]))[0-5][0-9]");

		public static void dfs(Character[] arr, LinkedList<Character> path, ArrayList<String> res) {
			if (path.size() == 4) {
				StringBuilder sb = new StringBuilder();
				for (Character c : path) sb.append(c);
				String timeStr = sb.toString();

				if (p.matcher(timeStr).find()) {
					res.add(timeStr);
				}

				return;
			}

			for (Character c : arr) {
				path.add(c);
				dfs(arr, path, res);
				path.removeLast();
			}
		}
	}